package tr.edu.metu.is.mega.common.dto;

import javax.validation.constraints.Size;

import com.sun.istack.internal.NotNull;

/**
 * Data structure class for activity templates.
 * 
 */
public class ActivityTemplateDTO extends BaseDTO {

    private static final long serialVersionUID = 4241475499006952078L;

    public static final String FIELD_SEQUENCENO = "sequenceNo";

    public static final String FIELD_SUBMISSIONTYPE = "submissionType";

    public static final String FIELD_ALERT_TIME = "alertTime";

    public static final String FIELD_DESCRIPTION = "description";

    public static final String FIELD_DUEDATE = "dueDate";

    public static final String FIELD_DUETIME = "dueTime";

    private Integer sequenceNo;

    @NotNull
    private ActivityType submissionType;

    @NotNull
    private Number alertTime;

    @Size(max = 100)
    private String description;

    @NotNull
    private Number dueDate;

    private Number dueTime;

    /**
     * Default constructor.
     */
    public ActivityTemplateDTO() {
    }

    /**
     * Returns sequenceNo.
     * 
     * @return the sequenceNo
     */
    public Integer getSequenceNo() {
        return sequenceNo;
    }

    /**
     * Sets sequenceNo value.
     * 
     * @param sequenceNo the sequenceNo to set
     */
    public void setSequenceNo(Integer sequenceNo) {
        this.sequenceNo = sequenceNo;
    }

    /**
     * Returns submissionType.
     * 
     * @return the submissionType
     */
    public ActivityType getSubmissionType() {
        return submissionType;
    }

    /**
     * Sets submissionType value.
     * 
     * @param submissionType the submissionType to set
     */
    public void setSubmissionType(ActivityType submissionType) {
        this.submissionType = submissionType;
    }

    /**
     * Returns alertTime.
     * 
     * @return the alertTime
     */
    public Number getAlertTime() {
        return alertTime;
    }

    /**
     * Sets alertTime value.
     * 
     * @param alertTime the alertTime to set
     */
    public void setAlertTime(Number alertTime) {
        this.alertTime = alertTime;
    }

    /**
     * Returns description.
     * 
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * Sets description value.
     * 
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * Returns dueDate.
     * 
     * @return the dueDate
     */
    public Number getDueDate() {
        return dueDate;
    }

    /**
     * Sets dueDate value.
     * 
     * @param dueDate the dueDate to set
     */
    public void setDueDate(Number dueDate) {
        this.dueDate = dueDate;
    }

    /**
     * Returns dueTime.
     * 
     * @return the dueTime
     */
    public Number getDueTime() {
        return dueTime;
    }

    /**
     * Sets dueTime value.
     * 
     * @param dueTime the dueTime to set
     */
    public void setDueTime(Number dueTime) {
        this.dueTime = dueTime;
    }

}
